/**
 * 
 */
package com.dalonedrow.engine.graph;

/**
 * @author Donald
 */
public interface DijkstraSearch {
	/**
	 * Gets the list of distances to all nodes.
	 * @return <code>float</code>[]
	 */
	float[] getDistances();
	/**
	 * Gets the list of nodes preceding the source.
	 * @return <code>int</code>
	 */
	int getNumPredecessors();
	/**
	 * Gets the path list to a specific target node. The smallest path will
	 * begin and end at the target node.
	 * @param target the target node
	 * @return <code>int</code>[]
	 */
	int[] getPathToTarget(int target);
	/**
	 * Searches for all paths starting from a specific node source.
	 * @param src the node source
	 * @throws Exception if an error occurs
	 */
	void search(int src) throws Exception;
	/**
	 * Sets the graph used.
	 * @param g the graph to set
	 */
	void setGraph(Graph g);
}
